package com.bt.lms.entity;

import java.time.LocalDate;
import java.util.List;

/**
 * 招生计划信息
 *
 * @author 卢梦丽
 */
public class EnrollmentPlan {


    /**
     * 招生计划id
     */
    private Long id;


    /**
     * 招生计划编号
     *
     * @reqRule 必填 文本  小
     */
    private String code;

    /**
     * 计划名称
     *
     * @reqRule 必填 文本  小
     */
    private String planName;

    /**
     * 计划内容
     *
     * @reqRule 必填 文本  中
     */
    private String planContent;

    /**
     * 招生层次
     * 1.不限
     * 2.高中
     * 3.大专
     * 4.本科
     * 5.本科以上
     * 6.其他
     *
     * @reqRule 必填  限选项（单）：不限，高中，大专 ，本科，本科以上，其他       默认值：不限
     */
    private Integer level;

    /**
     * 招生专业
     * 1.不限
     *
     * @reqRule 必填  限选项（单）：不限  默认值：不限
     * 或者从已有的专业中选择
     */
    private Integer major;

    /**
     * 招生人数
     *
     * @reqRule 必填 数字  小
     */
    private Integer population;

    /**
     * 学费标准
     * 1.元/学年
     * 2.元/学分
     * 3.元/学时
     *
     * @reqRule 必填  文本 小 /限选项（单）：元/学年，元/学分，元/学时  默认值：元/学年
     */
    private Integer tuitionStandard;

    /**
     * 报名开始时间
     *
     * @reqRule 必填  时间（yyyy-MM-dd）
     * 在已启用的招生计划之后选
     */
    private LocalDate startTime;


    /**
     * 报名结束时间
     *
     * @reqRule 必填  时间（yyyy-MM-dd）
     * 招生结束后选择
     */
    private LocalDate stopTime;


    /**
     * 报名方式
     * 1.线上 2.线下  3.都可以
     */
    private Integer regMode;

    /**
     * 报名地点
     *
     * @reqRule 必填  限选项（单）：北京市  /  限选项（单）：海淀区  /  文本 小
     */
    private String regPlace;

    /**
     * 联系人
     *
     * @reqRule 必填 文本  小
     */
    private String contact;

    /**
     * 电话
     *
     * @reqRule 必填 文本  小
     */
    private String phone;

    /**
     * 电子邮箱
     *
     * @reqRule 必填 文本  小
     */
    private String email;

    /**
     * 报名材料类型
     * 1.身份证
     * 2.照片
     * 3.学历证明
     * 4.学位证明
     * 5.体检报告
     * 6.其他
     *
     * @reqRule 必填  限选项（多）：身份证，照片，学历证明，学位证明，体检报告，其他 。 默认：身份证
     */
    private List<Integer> registrationType;

    /**
     * 报名事项
     *
     * @reqRule 必填 文本  大
     */
    private String enpItem;

    /**
     * 毕/结业相关事项
     *
     * @reqRule 必填 文本  小
     */
    private String graduateRelatedMatters;

    /**
     * 补充说明
     *
     * @reqRule 必填 文本  小
     */
    private String replenishExplain;


    /**
     * 教学计划id
     */
    private Integer teachingPlanID;

    /**
     * 招生计划状态
     *
     * @reqRule 1.未开始（默认） 2.已完成 3.报名中 4.审核中
     * 自动生成，不需要用户输入
     */
    private Integer status;

    /**
     * 启用状态
     *
     * @reqRule 1.暂停（默认）  2.启用
     * 自动生成，不需要用户输入
     */
    private Integer startStatus;

    //-----------------------关系--------

    /**
     * 学员报名信息*
     *
     * @reqRule 非必填        规则：一个招生计划能有多个学员报名信息
     */
    private List<RegStuInfo> applyInfos;

    /**
     * 教学计划基本信息
     *
     * @reqRule 必填         规则：一个教学计划对应多个招生计划
     */
    private TeachingPlanBasicInfo teachingPlanBasicInfo;


    /**
     * 分班记录
     *
     * @reqRule 必填         规则：一个招生计划可有多个分班记录
     */
    private List<DivideClassInfo> divideClassInfos;

    /**
     * 学习中心
     *
     * @reqRule 必填        规则：一个学习中心对应多个招生计划
     */
    private StudyCen studyCen;


    //外键

    /**
     * 教学计划id
     */
    public Long teachPlanId;

    /**
     * 学习中心id
     */
    public Long studyCenId;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getPlanName() {
        return planName;
    }

    public void setPlanName(String planName) {
        this.planName = planName;
    }

    public String getPlanContent() {
        return planContent;
    }

    public void setPlanContent(String planContent) {
        this.planContent = planContent;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public Integer getMajor() {
        return major;
    }

    public void setMajor(Integer major) {
        this.major = major;
    }

    public Integer getPopulation() {
        return population;
    }

    public void setPopulation(Integer population) {
        this.population = population;
    }

    public Integer getTuitionStandard() {
        return tuitionStandard;
    }

    public void setTuitionStandard(Integer tuitionStandard) {
        this.tuitionStandard = tuitionStandard;
    }

    public LocalDate getStartTime() {
        return startTime;
    }

    public void setStartTime(LocalDate startTime) {
        this.startTime = startTime;
    }

    public LocalDate getStopTime() {
        return stopTime;
    }

    public void setStopTime(LocalDate stopTime) {
        this.stopTime = stopTime;
    }

    public Integer getRegMode() {
        return regMode;
    }

    public void setRegMode(Integer regMode) {
        this.regMode = regMode;
    }

    public String getRegPlace() {
        return regPlace;
    }

    public void setRegPlace(String regPlace) {
        this.regPlace = regPlace;
    }

    public String getContact() {
        return contact;
    }

    public void setContact(String contact) {
        this.contact = contact;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public List<Integer> getRegistrationType() {
        return registrationType;
    }

    public void setRegistrationType(List<Integer> registrationType) {
        this.registrationType = registrationType;
    }

    public String getEnpItem() {
        return enpItem;
    }

    public void setEnpItem(String enpItem) {
        this.enpItem = enpItem;
    }

    public String getGraduateRelatedMatters() {
        return graduateRelatedMatters;
    }

    public void setGraduateRelatedMatters(String graduateRelatedMatters) {
        this.graduateRelatedMatters = graduateRelatedMatters;
    }

    public String getReplenishExplain() {
        return replenishExplain;
    }

    public void setReplenishExplain(String replenishExplain) {
        this.replenishExplain = replenishExplain;
    }

    public Integer getTeachingPlanID() {
        return teachingPlanID;
    }

    public void setTeachingPlanID(Integer teachingPlanID) {
        this.teachingPlanID = teachingPlanID;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStartStatus() {
        return startStatus;
    }

    public void setStartStatus(Integer startStatus) {
        this.startStatus = startStatus;
    }

    public List<RegStuInfo> getApplyInfos() {
        return applyInfos;
    }

    public void setApplyInfos(List<RegStuInfo> applyInfos) {
        this.applyInfos = applyInfos;
    }

    public TeachingPlanBasicInfo getTeachingPlanBasicInfo() {
        return teachingPlanBasicInfo;
    }

    public void setTeachingPlanBasicInfo(TeachingPlanBasicInfo teachingPlanBasicInfo) {
        this.teachingPlanBasicInfo = teachingPlanBasicInfo;
    }

    public List<DivideClassInfo> getDivideClassInfos() {
        return divideClassInfos;
    }

    public void setDivideClassInfos(List<DivideClassInfo> divideClassInfos) {
        this.divideClassInfos = divideClassInfos;
    }

    public StudyCen getStudyCen() {
        return studyCen;
    }

    public void setStudyCen(StudyCen studyCen) {
        this.studyCen = studyCen;
    }

    public Long getTeachPlanId() {
        return teachPlanId;
    }

    public void setTeachPlanId(Long teachPlanId) {
        this.teachPlanId = teachPlanId;
    }

    public Long getStudyCenId() {
        return studyCenId;
    }

    public void setStudyCenId(Long studyCenId) {
        this.studyCenId = studyCenId;
    }
}

